From f20a845519b471c2ad6081014eff88792750e1b7 Mon Sep 17 00:00:00 2001 From: "djm@kirby.fc.hp.com" Date: Fri, 15 Apr 2005 22:52:25 +0000 Subject: [PATCH] bitkeeper revision 1.1277.1.8 (426045a9jwqQpAs04HKkiXc9OPbBBw) vcpu.c: pending interrupt fix for paravirtualization --- xen/arch/ia64/vcpu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xen/arch/ia64/vcpu.c b/xen/arch/ia64/vcpu.c index 6439cdf3b5..bb8fc4ac07 100644 --- a/xen/arch/ia64/vcpu.c +++ b/xen/arch/ia64/vcpu.c @@ -509,6 +509,7 @@ void vcpu_pend_interrupt(VCPU *vcpu, UINT64 vector) //printf("vcpu_pend_interrupt: overrun\n"); } set_bit(vector,PSCB(vcpu,irr)); + PSCB(vcpu,pending_interruption) = 1; } void early_tick(VCPU *vcpu) @@ -637,7 +638,7 @@ IA64FAULT vcpu_get_ivr(VCPU *vcpu, UINT64 *pval) //printf("ZZZZZZ vcpu_get_ivr: setting insvc mask for vector %ld\n",vector); PSCB(vcpu,insvc[i]) |= mask; PSCB(vcpu,irr[i]) &= ~mask; - PSCB(vcpu,pending_interruption)--; + //PSCB(vcpu,pending_interruption)--; *pval = vector; // if delivering a timer interrupt, remember domain_itm if (vector == (PSCB(vcpu,itv) & 0xff)) { @@ -746,6 +747,7 @@ IA64FAULT vcpu_set_tpr(VCPU *vcpu, UINT64 val) { if (val & 0xff00) return IA64_RSVDREG_FAULT; PSCB(vcpu,tpr) = val; + //PSCB(vcpu,pending_interruption) = 1; return (IA64_NO_FAULT); } -- 2.30.2